home *** CD-ROM | disk | FTP | other *** search
- 1 KEY OFF
- 10 REM Program to examine the contents
- 20 REM of the memory. Enter the first
- 30 REM and last addresses to be displayed.
- 40 REM Address and memory contents are
- 50 REM both displayed in hexadecimal.
- 60 REM ** You can only access 64K on
- 70 REM each run, and cannot read over
- 80 REM the segment boundries in one
- 90 REM run.
- 100 REM
- 110 REM Author : Eddie Jaeger
- 120 REM
- 130 REM Written 4/18/82
- 131 ' Revising author: Stephen Leoce
- 132 ' 201 Delaware Avenue
- 133 ' Kingston, New York 12401
- 134 ' [914] 338-4593
- 135 '
- 136 ' Last Revision: 22-December-1983
- 137 '
- 140 REM
- 141 CLS
- 142 LOCATE 25,70 : PRINT "READING";
- 143 LOCATE 1,1
- 150 INPUT "START, STOP ADDRESS; (ASSUMED HEX) ===> ",F$,L$
- 153 LOCATE 25,70:PRINT"WORKING";:LOCATE 1,1:PRINT STRING$(80,32)
- 160 IF LEN(F$)<5 THEN Y$=F$: GOSUB 440: F$=Y$
- 170 IF LEN(L$)<5 THEN Y$=L$: GOSUB 440: L$=Y$
- 180 S1$ = LEFT$(F$,1)
- 190 S1 = VAL("&H"+S1$)
- 200 S = S1 * &H1000
- 210 X$ = RIGHT$(F$,4)
- 220 GOSUB 400
- 230 F = X
- 240 X$ = RIGHT$(L$,4)
- 250 GOSUB 400
- 260 L = X
- 270 DEF SEG = S
- 278 LINES=0
- 279 LOCATE 1,1:COLOR 1:PRINT"ADDR: ***REGISTER CONTENTS*** ":COLOR 7:PRINT:COLOR 0,7:PRINT"OFFSET 01 02 03 04 05 06 07 08":PRINT:COLOR 7,0
- 280 FOR C1 = F TO L STEP 8
- 290 C1$ = HEX$(C1)
- 300 IF LEN(C1$) < 5 THEN Y$ = C1$: GOSUB 440
- 301 GOSUB 5000
- 310 A$ = S1$ + RIGHT$(Y$,4)
- 320 PRINT USING "\ \"; A$;": ";
- 321 LINECOUNT = LINECOUNT + 1
- 330 FOR C2 = C1 TO C1 + 7
- 340 PRINT USING "\\";HEX$(PEEK(C2));" ";
- 350 NEXT C2
- 360 PRINT
- 370 NEXT C1
- 380 DEF SEG
- 388 LOCATE 25,70:PRINT "TERMINATED";
- 390 END
- 400 REM CONVERT STRING X$ TO DECIMAL X
- 410 X1 = VAL("&H" + X$)
- 420 IF X1 < 0 THEN X = 65535!+X1 ELSE X = X1
- 430 RETURN
- 440 REM MAKE Y$ 5 CHARACTERS LONG
- 450 Y$ = "0" + Y$
- 460 IF LEN(Y$) < 5 THEN GOTO 450
- 470 RETURN
- 5000 ' area to see if time to pause screen and change pages...
- 5010 IF LINECOUNT > 15 THEN GOSUB 6000 ELSE RETURN
- 5020 RETURN
- 6000 LINECOUNT = 0:LOCATE 25,70 : PRINT "MORE...";
- 6001 A$=INKEY$: IF LEN(A$)=0 THEN 6001
- 6002 CLS:LOCATE 25,70:PRINT "WORKING";
- 6003 LOCATE 1,1:COLOR 1:PRINT"ADDR: ***REGISTER CONTENTS*** ":COLOR 7:PRINT:COLOR 0,7:PRINT"OFFSET 01 02 03 04 05 06 07 08 ":PRINT:COLOR 7,0
- 6004 RETURN
- *REGISTER CONTENTS*** ":COLOR 7:PRINT:COLOR